The demand for continuous availability of certain computer programs continues to increase. High up-time is often desirable, for example, in web services which clients expect to be able to access at all times. As the field of web services grows, many organizations place a high-priority on ensuring that their web services are continuously running and constantly available. For example, an organization may rely heavily on mission-critical enterprise applications, such as database applications and other service applications, to effectively perform the objectives of that organization. As such, the organization may wish to reduce or eliminate the downtime of these applications. Another example in which high availability may be desirable is that of an application that uses large amounts of continuous processing time to perform complex calculations.
However, challenges exist in maintaining the continuous operation of a computer program. For example, computer programs generally execute within an operating system environment which may undergo regular maintenance. Certain types of operating system maintenance, such as patching operations, are performed while the operating system is off-line, which typically involves the interruption of computer programs running within the operating system environment. Additionally, a computing system executing the operating system environment and the computer program may need maintenance such that the hardware of the computer system is powered down during the maintenance. In still other examples, the processing resources of the computing system executing the computer program may become overburdened, thereby threatening the ability of the computing system to continuously execute the computer program.
Throughout the drawings, identical reference numbers may designate similar, but not necessarily identical, elements.